aboutsummaryrefslogtreecommitdiffstats
path: root/src/routes/(app)/[username]/(profile)/request
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2023-02-07 22:33:06 -0800
committerAdam Soltys <[email protected]>2023-02-07 22:33:06 -0800
commitf4a66ec14e12b357227ebd06f7ce698bf50a08f1 (patch)
tree4a2eaa1fd72166eb8e35d7df7196dc641decc3d9 /src/routes/(app)/[username]/(profile)/request
parent980dc1f0c0537d822d7fa8858844da3ad05bda4c (diff)
downloadcoinos-ui-f4a66ec14e12b357227ebd06f7ce698bf50a08f1.tar.gz
coinos-ui-f4a66ec14e12b357227ebd06f7ce698bf50a08f1.zip
restoring requests
Diffstat (limited to 'src/routes/(app)/[username]/(profile)/request')
-rw-r--r--src/routes/(app)/[username]/(profile)/request/+page.server.js15
-rw-r--r--src/routes/(app)/[username]/(profile)/request/+page.svelte35
-rw-r--r--src/routes/(app)/[username]/(profile)/request/sent/+page.svelte18
3 files changed, 68 insertions, 0 deletions
diff --git a/src/routes/(app)/[username]/(profile)/request/+page.server.js b/src/routes/(app)/[username]/(profile)/request/+page.server.js
new file mode 100644
index 00000000..2c1d6bde
--- /dev/null
+++ b/src/routes/(app)/[username]/(profile)/request/+page.server.js
@@ -0,0 +1,15 @@
+import { redirect } from '@sveltejs/kit';
+import { auth, post } from '$lib/utils';
+
+export const actions = {
+ create: async ({ cookies, params, request, url }) => {
+ let form = Object.fromEntries(await request.formData());
+ let { id, requester } = await post('/requests', form, auth(cookies));
+ throw redirect(307, `/${params.username}/request/${id}`);
+ },
+
+ delete: async ({ cookies, request }) => {
+ let form = Object.fromEntries(await request.formData());
+ let r = await post('/requests/delete', form, auth(cookies));
+ }
+};
diff --git a/src/routes/(app)/[username]/(profile)/request/+page.svelte b/src/routes/(app)/[username]/(profile)/request/+page.svelte
new file mode 100644
index 00000000..75117ff4
--- /dev/null
+++ b/src/routes/(app)/[username]/(profile)/request/+page.svelte
@@ -0,0 +1,35 @@
+<script>
+ import { t } from '$lib/translations';
+ import { enhance } from '$app/forms';
+ import { Icon } from '$comp';
+
+ export let data;
+
+ let { subject, user } = data;
+</script>
+
+<div class="container max-w-lg px-4 mx-auto mt-10 space-y-5">
+ <h1 class="px-3 md:px-0 text-center text-3xl md:text-4xl font-semibold">
+ {$t('payments.requestAnInvoice')}
+ </h1>
+
+ <form action="?/create" method="POST" use:enhance class="space-y-5">
+ <input type="hidden" name="requester_id" value={user.id} />
+ <input type="hidden" name="recipient" value={subject.username} />
+
+ <textarea
+ name="memo"
+ placeholder={$t('payments.describeOrder')}
+ class="w-full p-4 border rounded-xl h-48"
+ />
+
+ <div class="w-full flex">
+ <button
+ type="submit"
+ class="bg-black text-white border rounded-full px-6 py-2 font-bold mx-auto"
+ >
+ {$t('payments.submit')}
+ </button>
+ </div>
+ </form>
+</div>
diff --git a/src/routes/(app)/[username]/(profile)/request/sent/+page.svelte b/src/routes/(app)/[username]/(profile)/request/sent/+page.svelte
new file mode 100644
index 00000000..4995bfb2
--- /dev/null
+++ b/src/routes/(app)/[username]/(profile)/request/sent/+page.svelte
@@ -0,0 +1,18 @@
+<script>
+ import { scale } from 'svelte/transition';
+ import { Icon } from '$comp';
+
+ export let data;
+ let { subject } = data;
+</script>
+
+<div class="container px-4 text-center mx-auto">
+ <div class="flex w-full py-20 max-w-[200px] mx-auto" in:scale={{ start: 0.5 }}>
+ <Icon icon="check" style="mx-auto" />
+ </div>
+ <h1 class="text-3xl md:text-4xl font-bold mb-6">Request sent</h1>
+</div>
+
+<a href={`/${subject.username}`}>
+ <div class="opacity-0 w-screen h-screen fixed top-24 left-0 z-50" />
+</a>